<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8">
		<title>扫描条码</title>
		<script type="text/javascript">
			if (window.plus) {
				plusReady();
			} else {
				document.addEventListener("plusready", plusReady, false);
			}

			function plusReady() {
				var e = document.getElementById("scan");
				e.removeAttribute("disabled");
			}
			//
			//扫描对象
			var scan = null;
			//
			//扫描成功后成功调用的函数,BarcodeSuccessCallback 类型
			//BarcodeSuccessCallback(type,code,file)
			//	type: [必选] 识别的条形码类型
			//	code: [必选] 识别到的条形码数据
			//	file: [可选] 识别到的条形码数据,为png格式文件,如果设置为不保存图片,则返回undefined
			function onmarked(type, result, file) {
				var text = 'unknown:';
				switch (type) {
					case plus.barcode.QR:
						text = "QR:";
						break;
					case plus.barcode.EAN13:
						text = "EAN13:";
						break;
					case plus.barcode.EAN8:
						text = "EAN8:";
						break;
				}
				alert(text + result);
				alert(file);
			}
			//
			//显示扫描框,并初始化成功回调函数,和失败回调函数
			function startRecognize() {
				//创建Barcode对象
				//plus.barcode.Barcode(id,filters)
				//id: ( DOMString ) [必选] 条码识别控件在Webview窗口的DOM节点的id值
				//为了定义条码识别控件在Webview窗口中的位置，需要指定控件定位标签（div或objecct）的id号，系统将根据此id号来确定条码识别控件的大小及位置。
				//filters: ( Array[Number] ) [可选] 要识别的条码类型过滤器，为条码类型常量数组
				//条码识别引擎可支持多种二维码及一维码类型，默认情况支持QR、EAN13、EAN8三种类型。 可通过此参数设置需要支持的更多条码类型（注意：设置支持的条码类型越多，扫描识别效率将会降低）。
				var filters= [plus.barcode.QR];
				scan = new plus.barcode.Barcode("bcid",filters);
				scan.onmarked = onmarked;
				scan.onerror = showError;
				alert("scanRecognize");
			}
			//
			//扫描失败后调用的函数,BarcodeErrorCallback 类型
			//BarcodeErrorCallback(error)
			//error条码识别的错误信息
			function showError(error) {
				alert(error);
			}
			//
			//开始扫描
			function startScan() {
				//
				//JSON对象，条码识别控件扫描参数
				var option = {
					conserve: 1,
					filename: "22.jpg"
				};
				//			interface plus.barcode.BarcodeOption {
				//				attribute Boolean conserve;
				//				attribute DOMString filename;
				//			}
				//			conserve(Boolean):是否保存成功扫描到的条码数据时的截图,只要值不是null或者是undefined,就会保存截图
				//			filename(String):保存成功扫描到的条码数据时的截图,如果设置文件名称后缀名不一定是.png(本人测试gif,jpg也是ok的),而且不能带上路径,
				scan.start(option);
				alert("scanStart");
			}
			//
			//取消扫描
			function cancelScan() {
				scan.cancel();
				alert("scanCancel");
			}
			//
			//打开扫描框
			function setFlash() {
				scan.setFlash();
				alert("scanFlash");
			}
		</script>
	</head>

	<body>
		<input type="button" onclick="startRecognize()" value="scan" />
		<input type="button" onclick="startScan()" value="startScan" />
		<input type="button" onclick="cancelScan()" value="cancelScan" />
		<input type="button" onclick="setFlash()" value="startFlash" />
		
		
		<!--显示二维码的区域-->
		<div id="bcid" style="height: 400px;width:400px;">

		</div>
		<input type="text" id="scan" />
		<a href="javascript:window.location.reload()">refresh</a>
	</body>

</html>